package com.qire.common.constant;

/**
 * 自定义通知事件标签资源管理
 */
public class CustomEvent {

    // LOGIN_SUCCESS 事件 早于 USER_UPDATE_REFRESH 事件触发。 USER_UPDATE_REFRESH 不仅仅在登录时触发在用户数据发生改变时也会触发
    /** 登录成功 */
    public static final String LOGIN_SUCCESS    = MessageIdGenerator.generator.createToString();
    /** 用户数据更新刷新 */
    public static final String USER_UPDATE_REFRESH = MessageIdGenerator.generator.createToString();
    /** 签到成功通知 */
    public static final String SIGN_IN          = MessageIdGenerator.generator.createToString();

    /** 退出登录 */
    public static final String LOGOUT           = MessageIdGenerator.generator.createToString();

    /** 漫画目录页选择章节通知 */
    public static final String SELECT_CHAPTER   = MessageIdGenerator.generator.createToString();

    /** 弹幕编辑完成并发送 */
    public static final String BULLET_SCREEN_EDIT_SEND    = MessageIdGenerator.generator.createToString();

    /** 弹幕编辑取消 */
    public static final String BULLET_SCREEN_EDIT_CANCEL  = MessageIdGenerator.generator.createToString();

    /** 新人獎勵使用通知 */
    public static final String USED_NEWCOMER_REWARD = MessageIdGenerator.generator.createToString();

    /** 评论提交成功 */
    public static final String COMMENT_SUBMIT_SUCCESS  = MessageIdGenerator.generator.createToString();

    /** 图片裁剪并缩放结果 */
    public static final String IMAGE_CUT_AND_SCALE  = MessageIdGenerator.generator.createToString();

    /** 同步推送状态信息 */
    public static final String SYNC_PUSH_STATE_INFO = MessageIdGenerator.generator.createToString();

    /** 通知web页回调执行一个JS */
    public static final String WEB_JAVASCRIPT_CALLBACK = MessageIdGenerator.generator.createToString();

    /** 青少年模式状态查询消息 */
    public static final String TEENS_MODE_STATE = MessageIdGenerator.generator.createToString();
    /** 青少年模式状态切换消息 */
    public static final String TEENS_MODE_TOGGLE = MessageIdGenerator.generator.createToString();
    /** 青少年模式状态密码修改 */
    public static final String TEENS_MODE_MODIFY = MessageIdGenerator.generator.createToString();
    /** 青少年模式状态密码校验 */
    public static final String TEENS_MODE_VERIFY = MessageIdGenerator.generator.createToString();

    protected final static class MessageIdGenerator {

        protected static final MessageIdGenerator generator = new MessageIdGenerator();

        private volatile int baseId = 1;

        private MessageIdGenerator() {}

        /**
         * @return 生成唯一ID
         */
        public synchronized int create() {
            return baseId++;
        }

        /**
         * @return 生成唯一ID并且转换成String
         */
        public String createToString() {
            return String.valueOf(create());
        }
    }

}
